package com.heima.common.interceptor;

import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.heima.common.util.LoginUserInfo;
import com.heima.common.util.UserInfoThreadLocal;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UserInfoInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String userId = request.getHeader("userId");
        if (!ObjectUtils.isEmpty(userId)){
            // 存入ThreadLocal
            UserInfoThreadLocal.set(new LoginUserInfo(Long.valueOf(userId),"zhangsan"));
        }
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView){
        UserInfoThreadLocal.remove();
    }
}
